#include "pool.h"

/* 执行任务 */
void ThreadPool::exec() {
    // 线程池中的线程不能退出
    while (1) {
        // 唤醒线程
        sem_wait(&sem_task);

        // 去任务队列拿个任务来执行
        mutexLock.lock();
        I_Thread* _thread = taskQueue.front();
        taskQueue.pop();
        mutexLock.unlock(); // 执行任务前把锁解开

        _thread->run();
        leisure++; // 执行完了，我又空闲了

        delete _thread; // 释放任务
    }
}